# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Ionut Biru <ibiru@archlinux.org>

pkgbase=p11-kit
pkgname=(
  p11-kit
  libp11-kit
  p11-kit-docs
)
pkgver=0.25.3
pkgrel=1
pkgdesc="Loads and enumerates PKCS#11 modules"
url="https://p11-glue.freedesktop.org"
arch=(loong64 x86_64)
license=(BSD)
depends=(
  glibc
  libffi
  libtasn1
)
makedepends=(
  bash-completion
  gtk-doc
  meson
  systemd
)
checkdepends=(
  gnutls
)
source=(
  https://github.com/p11-glue/p11-kit/releases/download/$pkgver/p11-kit-$pkgver.tar.xz{,.sig}
)
b2sums=('5c695c1ef95edf4bbbab001aa634076c433df0bc89cb8104deaec2ce00c6908640e467755b49c6900e5d7d5d81e1a3871f4978a212c6f6ae088386ac0b95289a'
        'SKIP')
validpgpkeys=(
  C0F67099B808FB063E2C81117BFB1108D92765AF  # Stef Walter <stef@thewalter.net>
  462225C3B46F34879FC8496CD605848ED7E69871  # Daiki Ueno <ueno@unixuser.org>
  5D46CB0F763405A7053556F47A75A648B3F9220C  # Zoltan Fridrich <zfridric@redhat.com>
)

prepare() {
  cd p11-kit-$pkgver
}

build() {
  local meson_options=(
    -D gtk_doc=true
    -D man=true
    -D trust_paths=/etc/ca-certificates/trust-source:/usr/share/ca-certificates/trust-source
  )

  arch-meson p11-kit-$pkgver build "${meson_options[@]}"
  meson compile -C build
}

check() {
  meson test -C build --print-errorlogs
}

_pick() {
  local p="$1" f d; shift
  for f; do
    d="$srcdir/$p/${f#$pkgdir/}"
    mkdir -p "$(dirname "$d")"
    mv "$f" "$d"
    rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
  done
}

package_p11-kit() {
  depends=(
    "libp11-kit=$pkgver-$pkgrel"
    coreutils
    libp11-kit.so
    libsystemd.so
  )
  install=p11-kit.install

  meson install -C build --destdir "$pkgdir"
  ln -srf "$pkgdir/usr/bin/update-ca-trust" "$pkgdir/usr/lib/p11-kit/trust-extract-compat"

  _pick lib "$pkgdir"/usr/include
  _pick lib "$pkgdir"/usr/lib/{p11-kit-proxy.so,libp11-kit.*}
  _pick lib "$pkgdir"/usr/lib/{pkcs11,pkgconfig}
  _pick lib "$pkgdir"/usr/share/p11-kit

  _pick doc "$pkgdir"/usr/share/gtk-doc

  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 p11-kit-$pkgver/COPYING
}

package_libp11-kit() {
  pkgdesc+=" (library)"
  provides=(libp11-kit.so)

  mv lib/* "$pkgdir"

  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 p11-kit-$pkgver/COPYING
}

package_p11-kit-docs() {
  pkgdesc+=" (documentation)"
  depends=()

  mv doc/* "$pkgdir"

  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 p11-kit-$pkgver/COPYING
}

# vim:set sw=2 sts=-1 et:
